# -*- coding: utf-8 -*-
from .QuModLibs.Client import *
# 对于QuMod/QyMod项目可以直接全局作用域导入，此时必定确保安全加载了其他MOD；
# 对于原版System项目请勿直接使用，以免引起加载异常，可通过监听MOD加载完毕事件再加载特定业务模块。
from .KDevKit.Compat.GameSetting.CLPage import PageRegistry, CustomMainSetCanvas

class CustomPageButton(CustomMainSetCanvas.SelectHandler):
    def __init__(self, renderTitle="", defaultState=False):
        CustomMainSetCanvas.SelectHandler.__init__(self)
        self.renderState = defaultState
        self.renderTitle = renderTitle

    def getRenderText(self):
        """ 获取渲染文本 """
        return self.renderTitle

    def getRenderState(self):
        """ 获取渲染状态 """
        return self.renderState
    
    def onClick(self):
        """ 点击事件 """
        self.renderState = not self.renderState
        return True # 触发渲染更新

@Listen("LoadClientAddonScriptsAfter")
def LoadClientAddonScriptsAfter(_={}):
    PageRegistry.addBasicSetting(CustomMainSetCanvas.Title("自定义设置"))
    PageRegistry.addBasicSetting(CustomMainSetCanvas.Select([
        CustomPageButton("开关1", True),
        CustomPageButton("开关2", False),
        CustomPageButton("开关3", True),
    ]))